package main

import (
	"bufio"
	"fmt"
	"io"
	"log"
	"os"
	"strings"
	"time"
)

// 配置log信息
func init() {

	logFile, err := os.OpenFile("./日志"+time.Now().Format("2006-01")+".log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
	if err != nil {
		fmt.Println("open log file failed, err:", err)
		return
	}
	log.SetOutput(logFile)
	log.SetFlags(log.Lmicroseconds | log.Ldate)
}

// 读配置文件
func InitConfig(path string) map[string]string {
	//初始化
	myMap := make(map[string]string)
	//打开文件指定目录，返回一个文件f和错误信息
	f, err := os.Open(path)
	//异常处理 以及确保函数结尾关闭文件流
	if err != nil {
		panic(err)
	}
	defer f.Close()
	//创建一个输出流向该文件的缓冲流*Reader
	r := bufio.NewReader(f)
	for {
		//读取，返回[]byte 单行切片给b
		b, _, err := r.ReadLine()
		if err != nil {
			if err == io.EOF {
				break
			}
			panic(err)
		}
		//去除单行属性两端的空格
		s := strings.TrimSpace(string(b))
		//fmt.Println(s)
		//判断等号=在该行的位置
		index := strings.Index(s, "=")
		if index < 0 {
			continue
		}
		//取得等号左边的key值，判断是否为空
		key := strings.TrimSpace(s[:index])
		if len(key) == 0 {
			continue
		}
		//取得等号右边的value值，判断是否为空
		value := strings.TrimSpace(s[index+1:])
		if len(value) == 0 {
			continue
		}
		//这样就成功吧配置文件里的属性key=value对，成功载入到内存中c对象里
		myMap[key] = value
	}
	return myMap
}
func CreateDefaultConfig() {
	if PathExists("./" + configFileName) {
		return
	}
	file, err := os.OpenFile("./"+configFileName, os.O_CREATE|os.O_WRONLY, 0644)
	if err != nil {
		log.Println("open log file failed, err:", err)
		return
	}
	defer file.Close()
	str := `端口号=89
	mongodbconnetstr=mongodb://127.0.0.1:83/`
	writer := bufio.NewWriter(file)
	writer.WriteString(str)
	writer.Flush()
}
func PathExists(path string) bool {
	_, err := os.Stat(path)
	if err == nil { //文件或者目录存在
		return true
	}
	if os.IsNotExist(err) {
		return false
	}
	return false
}
func IsContain(items []string, item string) bool {
	for _, eachItem := range items {
		if eachItem == item {
			return true
		}
	}
	return false
}
func ConnectArrayString(items []string) string {
	stringconnect := ""
	for i := 0; i < len(items); i++ {
		if i == len(items)-1 {
			stringconnect += items[i]
		} else {
			stringconnect += items[i] + "或"
		}
	}
	return stringconnect
}
